/* 
 * Программа для расчёта экспоненты от комплексного аргумента
 * с помощью ряда Тейлора
 */

#include "complex.hpp"
#include <float.h> // DBL_EPSILON
#include <stdio.h>

Complex exp(const Complex &z);

int main(){
	Complex z(2.5,-0.3);

	printf("z = %g%+gi\n", z.real(), z.imag());
	Complex w = exp(z);
	printf("exp(z) = %g%+gi\n", w.real(), w.imag());

	return  0;
}

Complex exp(const Complex &z){
	Complex Sum(1);

	Complex E = z;
	int i = 1;
	while( E.modulo() > DBL_EPSILON){
		Sum = Sum + E;
		E = E*z/++i;
	}
	return Sum;
}


